Referring to FIG. 1, "FlashPix" is a data storage format for digitally encoded images in which the image is stored at a number of resolution levels. If FIG. 1 the images stored at the different resolution levels are represented by planes intersecting a pyramid at different levels.
The image is stored at a number of resolution levels 1 to N, typically with each resolution level differing from its neighbors by a resolution factor of four. In other words, if the highest resolution representation (at resolution level 1) of the image contains X amount of information, the second resolution level representation contains X/4 amount of information, the third resolution level representation contains X/16 amount of information, and so on. The number of resolution levels stored in a FlashPix image file will depend on the size of the highest resolution representation of the image and the minimum acceptable resolution for the thumbnail image at the lowest resolution level. For instance, if the full or highest resolution image is a high definition picture having about 4 million pixels (e.g., a 2048.times.2048 pixel image), the FlashPix file might contain five resolution level representations of the image in addition to the highest resolution image, including 1024.times.1024, 512.times.512, 256.times.256, 128.times.128, and 32.times.32 representations of the image. For ease of discussion, each resolution level representation of the image will be called "an image". The total size of the FlashPix file (i.e., the amount of memory storage required to store the file or data structure) for an image is typically about 11/3 times the size required to store the highest resolution representation of the image. By computing and storing the image at multiple resolutions, the time required to transition from one image resolution to another is reduced. Also, the amount of computational resources required to zoom in on a portion of an image is reduced. This is a classic tradeoff between speed and memory resource utilization.
In the prior art implementations of FlashPix files, the image has been encoded in JPEG format, which uses DCT (discrete cosine transform) to transform each 8.times.8 block of image pixels into an 8.times.8 array of coefficients that are then quantized and Huffman run length encoded.
It is a goal of the present invention to provide an image storage format and method that provides the same advantages as the FlashPix file format, but which stores image data more efficiently and which allows intermediate resolution images to be generated very efficiently on the fly, instead of having to pre-compute and store them in a file.
Another object of the present invention is to expand the FlashPix file format definition to include images compressed using wavelet or wavelet-like data transforms.